home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Day Cry
/
Day Cry CD.bin
/
oh_towns
/
ein
/
sources
/
einlib.lzh
/
LIBSRC.LZH
/
EIN_FS02.C
< prev
next >
Wrap
C/C++ Source or Header
|
1994-07-18
|
3KB
|
116 lines
/*<Header>==============================================================
*
* STRINGS OPERATION / "EIN_ST02.C"
*
* [ EIN(tm) project : ò╢ÄÜù±æÇì∞òΓÅòè╓ÉöîQ ]
*
* COPYRIGHT Nam & é▌é±é╜é┴ü⌠ 1994, All rights reserved.
*
*-----------------------------------------------------------------------
* V1.0L01â┐ 94.07.16/Nam âvâìâgâ^âCâv(é▌é±é╜é┴ü⌠é│é±é╠è╓Éöé≡ùÿùp)
*</Header>==============================================================*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <snd.h>
#include <winb.h>
#include <te.h>
#include <fntb.h>
#include <gui.h>
#define EIN_FSTR
#include "..\eintm.h"
#define __IsKanji1(x) (((x)>0x080 && (x)<0x0A0)||((x)>0xDF && (x)<0x0FD))
/*======================================================================
* static int __isKanjiStr( char *str, char *pos )
*
* üyèT ùvüz è┐ÄÜé╠ɵô¬âoâCâgé⌐ö█é⌐ö╗ò╩
*
* üyï@ ö\üz É▌ÆΦé│éΩé╜ò╢ÄÜù±(*str)ôαé╠ÄwÆΦê╩Æué╠ò╢ÄÜ(*pos)é¬
* è┐ÄÜé╠ɵô¬âoâCâgé⌐é╟éñé⌐ö╗ò╩é╖éΘ
*
* üyôⁿ ù═üz *str; : æ╬Å█ò╢ÄÜù±â|âCâôâ^
* *pos; : æ╬Å█ò╢ÄÜâ|âCâôâ^
*
* üyÅo ù═üz
*
* üyè╓ÉöÆlüz ==1 : è┐ÄÜé╠ɵô¬âoâCâg
* ==0 : è┐ÄÜé╠ɵô¬âoâCâgé┼é═é╚éó
*
* üyÆì ê╙üz è┐ÄÜé╠2âoâCâgû┌é╠ÅΩìçé╔é═'0'é≡ò╘é╖é╠é┼Æìê╙é╖éΘé▒é╞
*
* üyÄQ Å╞üz
*
*-----------------------------------------------------------------------
* 0.00 1991.01.27/Minta(GB_isKanjiStré╞é╡é─âvâìâgâ^âCâsâôâO)
* V11L10 1994.07.16/Nam
*=====================================================================*/
static int __isKanjiStr( char *str, char *pos )
{
register char flag = 1;
if ((pos == NULL) || (str == NULL) || (str > pos)) {
return 0;
}
if (__IsKanji1(*pos)){ /* è┐ÄÜé╠ɵô¬âoâCâgé⌐éα? */
for (pos--; str <= pos; pos--){ /* ò╢ÄÜù±Éµô¬ò√îⁿé╓æûì╕ */
if(!__IsKanji1(*pos)){ /* è┐ÄÜé╠ɵô¬âoâCâgé┼é═é╚éó */
return flag;
} else {
flag ^= 1;
}
}
return flag;
} else { /* è┐ÄÜé╠ɵô¬âoâCâgé┼é═é╚éó */
return 0;
}
}
/*<Func>================================================================
* char *EIN_strrchr( char *str, char code )
*
* üyèT ùvüz strrchré╠è┐ÄÜæ╬ë₧ö┼
*
* üyï@ ö\üz strchr()é╞ô»é╢ô«ì∞é≡,ò╢ÄÜù±é╠ÅIéφéΦé⌐éτìséñ(SJISæ╬ë₧)
*
* üyôⁿ ù═üz *str; : îƒì⌡ò╢ÄÜù±
* code; : îƒì⌡ò╢ÄÜâRü[âh
*
* üyÅo ù═üz*dst :
*
* üyè╓ÉöÆlüz !=NULL É│ÅφÅIù╣(îƒì⌡ò╢ÄÜâAâhâîâX)
* ==NULL ê┘ÅφÅIù╣(îƒì⌡ò╢ÄÜé¬û│é⌐é┴é╜)
*
* üyÆì ê╙üz
*
* üyÄQ Å╞üz
*
*-----------------------------------------------------------------------
* 0.00 1991.01.27/Minta(GB_strchrRevé╞é╡é─âvâìâgâ^âCâsâôâO)
* V11L10 1994.07.16/Nam
*</Func>==============================================================*/
char *EIN_strrchr( char *str, char code )
{
char *wp; /* îƒì⌡æ╬Å█â|âCâôâ^ */
if (str == NULL) {
return NULL;
}
for (wp = str + strlen(str) - 1; wp >= str; wp--) {
if (*wp == code) {
if (wp > str) {
if (__isKanjiStr(str, wp-1)) {
wp--;
continue;
}
}
return wp;
}
}
return NULL;
}